home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / SoundAndMusic / cmix / Minc / lex.yy.c < prev    next >
C/C++ Source or Header  |  1992-01-27  |  15KB  |  906 lines

  1. # include "stdio.h"
  2. # define U(x) x
  3. # define NLSTATE yyprevious=YYNEWLINE
  4. # define BEGIN yybgin = yysvec + 1 +
  5. # define INITIAL 0
  6. # define YYLERR yysvec
  7. # define YYSTATE (yyestate-yysvec-1)
  8. # define YYOPTIM 1
  9. # define YYLMAX 200
  10. # define output(c) putc(c,yyout)
  11. # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  12. # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
  13. # define yymore() (yymorfg=1)
  14. # define ECHO fprintf(yyout, "%s",yytext)
  15. # define REJECT { nstr = yyreject(); goto yyfussy;}
  16. int yyleng; extern char yytext[];
  17. int yymorfg;
  18. extern char *yysptr, yysbuf[];
  19. int yytchar;
  20. FILE *yyin ={stdin}, *yyout ={stdout};
  21. extern int yylineno;
  22. struct yysvf { 
  23.     struct yywork *yystoff;
  24.     struct yysvf *yyother;
  25.     int *yystops;};
  26. struct yysvf *yyestate;
  27. extern struct yysvf yysvec[], *yybgin;
  28. # define INIT 2
  29. # define COM 4
  30. #include "y.tab.h"
  31. int     comments=0;
  32. # define YYNEWLINE 10
  33. int yylex(){
  34. int nstr; extern int yyprevious;
  35. while((nstr = yylook()) >= 0)
  36. yyfussy: switch(nstr){
  37. case 0:
  38. if(yywrap()) return(0); break;
  39. case 1:
  40.     {BEGIN COM;comments++;}
  41. break;
  42. case 2:
  43.     {comments++;}
  44. break;
  45. case 3:
  46.     ;
  47. break;
  48. case 4:
  49.     {comments--;if (comments==0){BEGIN INIT;}}
  50. break;
  51. case 5:
  52.     return(NUM);
  53. break;
  54. case 6:
  55.     return(NUM);
  56. break;
  57. case 7:
  58.         return (UNEQU);
  59. break;
  60. case 8:
  61.     return (LESSEQU);
  62. break;
  63. case 9:
  64.     return (GTREQU);
  65. break;
  66. case 10:
  67.     return (T_EQU);
  68. break;
  69. case 11:
  70.     return (T_POW);
  71. break;
  72. case 12:
  73.     return (STRING);
  74. break;
  75. case 13:
  76.     return (FOR);
  77. break;
  78. case 14:
  79.         return (IF);
  80. break;
  81. case 15:
  82.     return (ELSE);
  83. break;
  84. case 16:
  85. return (WHILE);
  86. break;
  87. case 17:
  88.     return (T_AND);
  89. break;
  90. case 18:
  91.         return (T_AND);
  92. break;
  93. case 19:
  94.     return (T_NOT);
  95. break;
  96. case 20:
  97.         return (T_NOT);
  98. break;
  99. case 21:
  100.         return (T_OR);
  101. break;
  102. case 22:
  103.         return (T_OR);
  104. break;
  105. case 23:
  106.     return (T_TRUE);
  107. break;
  108. case 24:
  109. return (T_FALSE);
  110. break;
  111. case 25:
  112. return (FLT);
  113. break;
  114. case 26:
  115.     return (*yytext);
  116. break;
  117. case 27:
  118.     return (*yytext);
  119. break;
  120. case 28:
  121.         return (*yytext);
  122. break;
  123. case 29:
  124.         ;
  125. break;
  126. case 30:
  127.         ;
  128. break;
  129. case 31:
  130.     return (ID);
  131. break;
  132. case 32:
  133.         yyerror("illegal character");
  134. break;
  135. case 33:
  136.         {BEGIN INIT;unput(yytext[0]);}
  137. break;
  138. case -1:
  139. break;
  140. default:
  141. fprintf(yyout,"bad switch yylook %d",nstr);
  142. } return(0); }
  143. /* end of yylex */
  144.  
  145. int yyvstop[] ={
  146. 0,
  147.  
  148. 33,
  149. 0,
  150.  
  151. 32,
  152. 33,
  153. 0,
  154.  
  155. 30,
  156. 32,
  157. 33,
  158. 0,
  159.  
  160. 29,
  161. 33,
  162. 0,
  163.  
  164. 20,
  165. 32,
  166. 33,
  167. 0,
  168.  
  169. 32,
  170. 33,
  171. 0,
  172.  
  173. 32,
  174. 33,
  175. 0,
  176.  
  177. 28,
  178. 32,
  179. 33,
  180. 0,
  181.  
  182. 26,
  183. 32,
  184. 33,
  185. 0,
  186.  
  187. 26,
  188. 32,
  189. 33,
  190. 0,
  191.  
  192. 32,
  193. 33,
  194. 0,
  195.  
  196. 27,
  197. 32,
  198. 33,
  199. 0,
  200.  
  201. 5,
  202. 32,
  203. 33,
  204. 0,
  205.  
  206. 26,
  207. 32,
  208. 33,
  209. 0,
  210.  
  211. 26,
  212. 32,
  213. 33,
  214. 0,
  215.  
  216. 26,
  217. 32,
  218. 33,
  219. 0,
  220.  
  221. 31,
  222. 32,
  223. 33,
  224. 0,
  225.  
  226. 31,
  227. 32,
  228. 33,
  229. 0,
  230.  
  231. 31,
  232. 32,
  233. 33,
  234. 0,
  235.  
  236. 31,
  237. 32,
  238. 33,
  239. 0,
  240.  
  241. 31,
  242. 32,
  243. 33,
  244. 0,
  245.  
  246. 31,
  247. 32,
  248. 33,
  249. 0,
  250.  
  251. 31,
  252. 32,
  253. 33,
  254. 0,
  255.  
  256. 31,
  257. 32,
  258. 33,
  259. 0,
  260.  
  261. 31,
  262. 32,
  263. 33,
  264. 0,
  265.  
  266. 27,
  267. 32,
  268. 33,
  269. 0,
  270.  
  271. 11,
  272. 32,
  273. 33,
  274. 0,
  275.  
  276. 32,
  277. 33,
  278. 0,
  279.  
  280. 20,
  281. 32,
  282. 33,
  283. 0,
  284.  
  285. 3,
  286. 33,
  287. 0,
  288.  
  289. 3,
  290. 33,
  291. 0,
  292.  
  293. 3,
  294. 33,
  295. 0,
  296.  
  297. 7,
  298. 0,
  299.  
  300. 12,
  301. 0,
  302.  
  303. 18,
  304. 0,
  305.  
  306. 11,
  307. 0,
  308.  
  309. 6,
  310. 0,
  311.  
  312. 1,
  313. 0,
  314.  
  315. 5,
  316. 0,
  317.  
  318. 5,
  319. 0,
  320.  
  321. 8,
  322. 0,
  323.  
  324. 10,
  325. 0,
  326.  
  327. 9,
  328. 0,
  329.  
  330. 31,
  331. 0,
  332.  
  333. 31,
  334. 0,
  335.  
  336. 31,
  337. 0,
  338.  
  339. 31,
  340. 0,
  341.  
  342. 31,
  343. 0,
  344.  
  345. 31,
  346. 0,
  347.  
  348. 14,
  349. 31,
  350. 0,
  351.  
  352. 31,
  353. 0,
  354.  
  355. 21,
  356. 31,
  357. 0,
  358.  
  359. 31,
  360. 0,
  361.  
  362. 31,
  363. 0,
  364.  
  365. 22,
  366. 0,
  367.  
  368. 4,
  369. 0,
  370.  
  371. 2,
  372. 0,
  373.  
  374. 17,
  375. 31,
  376. 0,
  377.  
  378. 31,
  379. 0,
  380.  
  381. 31,
  382. 0,
  383.  
  384. 31,
  385. 0,
  386.  
  387. 13,
  388. 31,
  389. 0,
  390.  
  391. 19,
  392. 31,
  393. 0,
  394.  
  395. 31,
  396. 0,
  397.  
  398. 31,
  399. 0,
  400.  
  401. 6,
  402. 0,
  403.  
  404. 5,
  405. 0,
  406.  
  407. 15,
  408. 31,
  409. 0,
  410.  
  411. 31,
  412. 0,
  413.  
  414. 31,
  415. 0,
  416.  
  417. 23,
  418. 31,
  419. 0,
  420.  
  421. 31,
  422. 0,
  423.  
  424. 24,
  425. 31,
  426. 0,
  427.  
  428. 25,
  429. 31,
  430. 0,
  431.  
  432. 16,
  433. 31,
  434. 0,
  435. 0};
  436. # define YYTYPE unsigned char
  437. struct yywork { YYTYPE verify, advance; } yycrank[] ={
  438. 0,0,    0,0,    1,7,    0,0,    
  439. 0,0,    0,0,    0,0,    0,0,    
  440. 0,0,    0,0,    0,0,    1,7,    
  441. 0,0,    0,0,    0,0,    0,0,    
  442. 0,0,    0,0,    0,0,    0,0,    
  443. 0,0,    0,0,    0,0,    0,0,    
  444. 0,0,    0,0,    0,0,    0,0,    
  445. 0,0,    0,0,    0,0,    0,0,    
  446. 0,0,    0,0,    0,0,    1,7,    
  447. 0,0,    0,0,    0,0,    0,0,    
  448. 13,42,    0,0,    0,0,    1,7,    
  449. 15,43,    18,45,    38,64,    0,0,    
  450. 0,0,    1,7,    17,44,    17,44,    
  451. 17,44,    17,44,    17,44,    17,44,    
  452. 17,44,    17,44,    17,44,    17,44,    
  453. 37,63,    0,0,    0,0,    11,39,    
  454. 20,48,    20,39,    1,7,    1,7,    
  455. 21,49,    1,7,    1,7,    1,7,    
  456. 22,50,    1,7,    1,7,    44,65,    
  457. 0,0,    1,7,    0,0,    1,7,    
  458. 1,7,    3,8,    0,0,    1,7,    
  459. 1,7,    1,7,    1,7,    24,51,    
  460. 1,7,    3,9,    3,10,    19,46,    
  461. 0,0,    19,47,    19,47,    19,47,    
  462. 19,47,    19,47,    19,47,    19,47,    
  463. 19,47,    19,47,    19,47,    25,53,    
  464. 51,51,    25,51,    0,0,    44,65,    
  465. 0,0,    0,0,    0,0,    0,0,    
  466. 3,9,    3,11,    3,12,    57,51,    
  467. 0,0,    0,0,    3,13,    24,51,    
  468. 3,14,    3,14,    3,15,    3,16,    
  469. 3,16,    3,16,    3,17,    3,18,    
  470. 3,19,    34,62,    0,0,    0,0,    
  471. 0,0,    0,0,    0,0,    25,53,    
  472. 51,51,    25,51,    31,61,    3,16,    
  473. 3,20,    3,21,    3,22,    27,57,    
  474. 31,51,    3,23,    3,24,    57,51,    
  475. 3,24,    3,25,    3,26,    27,51,    
  476. 3,24,    3,27,    0,0,    26,54,    
  477. 3,24,    4,9,    3,28,    3,29,    
  478. 0,0,    0,0,    3,24,    3,24,    
  479. 3,30,    3,24,    26,55,    3,31,    
  480. 26,51,    26,56,    31,61,    3,32,    
  481. 0,0,    3,32,    3,33,    27,57,    
  482. 31,51,    0,0,    0,0,    0,0,    
  483. 4,9,    4,11,    0,0,    27,51,    
  484. 59,51,    0,0,    4,13,    26,54,    
  485. 4,14,    4,14,    0,0,    4,16,    
  486. 4,16,    4,16,    4,17,    4,18,    
  487. 0,0,    0,0,    26,55,    67,51,    
  488. 26,51,    26,56,    0,0,    3,16,    
  489. 3,34,    3,16,    3,35,    4,16,    
  490. 4,20,    4,21,    4,22,    6,36,    
  491. 6,36,    6,36,    52,67,    6,38,    
  492. 59,51,    5,36,    0,0,    28,51,    
  493. 28,58,    29,51,    55,51,    55,70,    
  494. 52,51,    29,59,    5,36,    6,36,    
  495. 6,36,    6,36,    6,36,    67,51,    
  496. 0,0,    30,51,    54,69,    70,81,    
  497. 54,51,    30,60,    68,79,    4,32,    
  498. 0,0,    4,32,    4,33,    0,0,    
  499. 0,0,    0,0,    52,67,    68,51,    
  500. 70,51,    0,0,    5,36,    28,51,    
  501. 28,58,    29,51,    55,51,    55,70,    
  502. 52,51,    29,59,    5,37,    5,36,    
  503. 5,36,    5,36,    0,0,    5,38,    
  504. 5,36,    30,51,    54,69,    70,81,    
  505. 54,51,    30,60,    68,79,    4,16,    
  506. 4,34,    4,16,    4,35,    5,36,    
  507. 5,36,    5,36,    5,36,    68,51,    
  508. 70,51,    5,36,    5,36,    60,51,    
  509. 5,36,    5,36,    5,36,    12,40,    
  510. 5,36,    5,36,    60,73,    6,36,    
  511. 5,36,    6,36,    5,36,    5,36,    
  512. 12,40,    71,51,    5,36,    5,36,    
  513. 5,36,    5,36,    0,0,    5,36,    
  514. 46,46,    46,46,    46,46,    46,46,    
  515. 46,46,    46,46,    46,46,    46,46,    
  516. 46,46,    46,46,    56,51,    60,51,    
  517. 53,51,    72,51,    56,71,    0,0,    
  518. 12,41,    53,68,    60,73,    0,0,    
  519. 0,0,    46,66,    0,0,    0,0,    
  520. 12,40,    71,51,    0,0,    79,51,    
  521. 0,0,    0,0,    12,40,    82,51,    
  522. 0,0,    0,0,    0,0,    5,36,    
  523. 0,0,    5,36,    0,0,    0,0,    
  524. 0,0,    0,0,    56,51,    0,0,    
  525. 53,51,    72,51,    56,71,    12,40,    
  526. 12,40,    53,68,    12,40,    12,40,    
  527. 12,40,    46,66,    12,40,    12,40,    
  528. 0,0,    23,51,    12,40,    79,51,    
  529. 12,40,    12,40,    0,0,    82,51,    
  530. 12,40,    12,40,    12,40,    12,40,    
  531. 23,51,    12,40,    23,51,    23,51,    
  532. 23,51,    23,51,    23,51,    23,51,    
  533. 23,51,    23,51,    23,51,    23,51,    
  534. 0,0,    61,74,    74,83,    84,51,    
  535. 74,51,    0,0,    61,51,    23,51,    
  536. 23,51,    23,51,    23,51,    23,51,    
  537. 23,51,    23,51,    23,51,    23,51,    
  538. 23,51,    23,51,    23,51,    23,51,    
  539. 23,52,    23,51,    23,51,    23,51,    
  540. 23,51,    23,51,    23,51,    23,51,    
  541. 23,51,    23,51,    23,51,    23,51,    
  542. 23,51,    61,74,    74,83,    84,51,    
  543. 74,51,    23,51,    61,51,    23,51,    
  544. 23,51,    23,51,    23,51,    23,51,    
  545. 23,51,    23,51,    23,51,    23,51,    
  546. 23,51,    23,51,    23,51,    23,51,    
  547. 23,52,    23,51,    23,51,    23,51,    
  548. 23,51,    23,51,    23,51,    23,51,    
  549. 23,51,    23,51,    23,51,    23,51,    
  550. 23,51,    58,51,    0,0,    65,75,    
  551. 0,0,    65,75,    85,51,    58,72,    
  552. 65,76,    65,76,    65,76,    65,76,    
  553. 65,76,    65,76,    65,76,    65,76,    
  554. 65,76,    65,76,    66,77,    0,0,    
  555. 66,77,    0,0,    0,0,    66,78,    
  556. 66,78,    66,78,    66,78,    66,78,    
  557. 66,78,    66,78,    66,78,    66,78,    
  558. 66,78,    58,51,    73,82,    69,51,    
  559. 81,51,    0,0,    85,51,    58,72,    
  560. 69,80,    0,0,    81,85,    73,51,    
  561. 75,76,    75,76,    75,76,    75,76,    
  562. 75,76,    75,76,    75,76,    75,76,    
  563. 75,76,    75,76,    77,78,    77,78,    
  564. 77,78,    77,78,    77,78,    77,78,    
  565. 77,78,    77,78,    77,78,    77,78,    
  566. 80,84,    86,51,    73,82,    69,51,    
  567. 81,51,    83,86,    0,0,    0,0,    
  568. 69,80,    80,51,    81,85,    73,51,    
  569. 0,0,    0,0,    83,51,    0,0,    
  570. 0,0,    0,0,    0,0,    0,0,    
  571. 0,0,    0,0,    0,0,    0,0,    
  572. 0,0,    0,0,    0,0,    0,0,    
  573. 0,0,    0,0,    0,0,    0,0,    
  574. 80,84,    86,51,    0,0,    0,0,    
  575. 0,0,    83,86,    0,0,    0,0,    
  576. 0,0,    80,51,    0,0,    0,0,    
  577. 0,0,    0,0,    83,51,    0,0,    
  578. 0,0};
  579. struct yysvf yysvec[] ={
  580. 0,    0,    0,
  581. yycrank+-1,    0,        0,    
  582. yycrank+0,    yysvec+1,    0,    
  583. yycrank+-80,    0,        0,    
  584. yycrank+-148,    yysvec+3,    0,    
  585. yycrank+-216,    0,        0,    
  586. yycrank+-168,    yysvec+5,    0,    
  587. yycrank+0,    0,        yyvstop+1,
  588. yycrank+0,    0,        yyvstop+3,
  589. yycrank+0,    0,        yyvstop+6,
  590. yycrank+0,    0,        yyvstop+10,
  591. yycrank+2,    0,        yyvstop+13,
  592. yycrank+-286,    0,        yyvstop+17,
  593. yycrank+2,    0,        yyvstop+20,
  594. yycrank+0,    0,        yyvstop+23,
  595. yycrank+2,    0,        yyvstop+27,
  596. yycrank+0,    0,        yyvstop+31,
  597. yycrank+2,    0,        yyvstop+35,
  598. yycrank+3,    0,        yyvstop+38,
  599. yycrank+45,    0,        yyvstop+42,
  600. yycrank+3,    0,        yyvstop+46,
  601. yycrank+7,    0,        yyvstop+50,
  602. yycrank+11,    0,        yyvstop+54,
  603. yycrank+326,    0,        yyvstop+58,
  604. yycrank+9,    yysvec+23,    yyvstop+62,
  605. yycrank+27,    yysvec+23,    yyvstop+66,
  606. yycrank+90,    yysvec+23,    yyvstop+70,
  607. yycrank+73,    yysvec+23,    yyvstop+74,
  608. yycrank+141,    yysvec+23,    yyvstop+78,
  609. yycrank+143,    yysvec+23,    yyvstop+82,
  610. yycrank+155,    yysvec+23,    yyvstop+86,
  611. yycrank+66,    yysvec+23,    yyvstop+90,
  612. yycrank+0,    0,        yyvstop+94,
  613. yycrank+0,    0,        yyvstop+98,
  614. yycrank+5,    0,        yyvstop+102,
  615. yycrank+0,    0,        yyvstop+105,
  616. yycrank+0,    0,        yyvstop+109,
  617. yycrank+13,    0,        yyvstop+112,
  618. yycrank+4,    0,        yyvstop+115,
  619. yycrank+0,    0,        yyvstop+118,
  620. yycrank+0,    yysvec+12,    0,    
  621. yycrank+0,    0,        yyvstop+120,
  622. yycrank+0,    0,        yyvstop+122,
  623. yycrank+0,    0,        yyvstop+124,
  624. yycrank+6,    yysvec+17,    yyvstop+126,
  625. yycrank+0,    0,        yyvstop+128,
  626. yycrank+256,    0,        yyvstop+130,
  627. yycrank+0,    yysvec+19,    yyvstop+132,
  628. yycrank+0,    0,        yyvstop+134,
  629. yycrank+0,    0,        yyvstop+136,
  630. yycrank+0,    0,        yyvstop+138,
  631. yycrank+26,    yysvec+23,    yyvstop+140,
  632. yycrank+146,    yysvec+23,    yyvstop+142,
  633. yycrank+238,    yysvec+23,    yyvstop+144,
  634. yycrank+158,    yysvec+23,    yyvstop+146,
  635. yycrank+144,    yysvec+23,    yyvstop+148,
  636. yycrank+236,    yysvec+23,    yyvstop+150,
  637. yycrank+37,    yysvec+23,    yyvstop+152,
  638. yycrank+371,    yysvec+23,    yyvstop+155,
  639. yycrank+106,    yysvec+23,    yyvstop+157,
  640. yycrank+205,    yysvec+23,    yyvstop+160,
  641. yycrank+312,    yysvec+23,    yyvstop+162,
  642. yycrank+0,    0,        yyvstop+164,
  643. yycrank+0,    0,        yyvstop+166,
  644. yycrank+0,    0,        yyvstop+168,
  645. yycrank+408,    0,        0,    
  646. yycrank+423,    0,        0,    
  647. yycrank+121,    yysvec+23,    yyvstop+170,
  648. yycrank+169,    yysvec+23,    yyvstop+173,
  649. yycrank+405,    yysvec+23,    yyvstop+175,
  650. yycrank+170,    yysvec+23,    yyvstop+177,
  651. yycrank+219,    yysvec+23,    yyvstop+179,
  652. yycrank+239,    yysvec+23,    yyvstop+182,
  653. yycrank+413,    yysvec+23,    yyvstop+185,
  654. yycrank+310,    yysvec+23,    yyvstop+187,
  655. yycrank+444,    0,        0,    
  656. yycrank+0,    yysvec+75,    yyvstop+189,
  657. yycrank+454,    0,        0,    
  658. yycrank+0,    yysvec+77,    yyvstop+191,
  659. yycrank+253,    yysvec+23,    yyvstop+193,
  660. yycrank+443,    yysvec+23,    yyvstop+196,
  661. yycrank+406,    yysvec+23,    yyvstop+198,
  662. yycrank+257,    yysvec+23,    yyvstop+200,
  663. yycrank+448,    yysvec+23,    yyvstop+203,
  664. yycrank+309,    yysvec+23,    yyvstop+205,
  665. yycrank+376,    yysvec+23,    yyvstop+208,
  666. yycrank+435,    yysvec+23,    yyvstop+211,
  667. 0,    0,    0};
  668. struct yywork *yytop = yycrank+558;
  669. struct yysvf *yybgin = yysvec+1;
  670. char yymatch[] ={
  671. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  672. 01  ,01  ,012 ,01  ,01  ,01  ,01  ,01  ,
  673. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  674. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  675. 01  ,01  ,'"' ,01  ,01  ,01  ,01  ,01  ,
  676. 01  ,01  ,'*' ,'*' ,'*' ,'*' ,01  ,01  ,
  677. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  678. '0' ,'0' ,01  ,'*' ,'*' ,'*' ,'*' ,01  ,
  679. 01  ,'A' ,'B' ,'B' ,'D' ,'E' ,'F' ,'B' ,
  680. 'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
  681. 'B' ,'B' ,'R' ,'S' ,'T' ,'U' ,'B' ,'W' ,
  682. 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
  683. 01  ,'A' ,'B' ,'B' ,'D' ,'E' ,'F' ,'B' ,
  684. 'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
  685. 'B' ,'B' ,'R' ,'S' ,'T' ,'U' ,'B' ,'W' ,
  686. 'B' ,'B' ,'B' ,'*' ,01  ,'*' ,01  ,01  ,
  687. 0};
  688. char yyextra[] ={
  689. 0,0,0,0,0,0,0,0,
  690. 0,0,0,0,0,0,0,0,
  691. 0,0,0,0,0,0,0,0,
  692. 0,0,0,0,0,0,0,0,
  693. 0,0,0,0,0,0,0,0,
  694. 0};
  695. /*    ncform    4.1    83/08/11    */
  696.  
  697. int yylineno =1;
  698. # define YYU(x) x
  699. # define NLSTATE yyprevious=YYNEWLINE
  700. char yytext[YYLMAX];
  701. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  702. char yysbuf[YYLMAX];
  703. char *yysptr = yysbuf;
  704. int *yyfnd;
  705. extern struct yysvf *yyestate;
  706. int yyprevious = YYNEWLINE;
  707. #if    NeXT
  708. int yylook(){
  709. #else
  710. yylook(){
  711. #endif    NeXT
  712.     register struct yysvf *yystate, **lsp;
  713.     register struct yywork *yyt;
  714.     struct yysvf *yyz;
  715.     int yych;
  716.     struct yywork *yyr;
  717. # ifdef LEXDEBUG
  718.     int debug;
  719. # endif
  720.     char *yylastch;
  721.     /* start off machines */
  722. # ifdef LEXDEBUG
  723.     debug = 0;
  724. # endif
  725.     if (!yymorfg)
  726.         yylastch = yytext;
  727.     else {
  728.         yymorfg=0;
  729.         yylastch = yytext+yyleng;
  730.         }
  731.     for(;;){
  732.         lsp = yylstate;
  733.         yyestate = yystate = yybgin;
  734.         if (yyprevious==YYNEWLINE) yystate++;
  735.         for (;;){
  736. # ifdef LEXDEBUG
  737.             if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  738. # endif
  739.             yyt = yystate->yystoff;
  740.             if(yyt == yycrank){        /* may not be any transitions */
  741.                 yyz = yystate->yyother;
  742.                 if(yyz == 0)break;
  743.                 if(yyz->yystoff == yycrank)break;
  744.                 }
  745.             *yylastch++ = yych = input();
  746.         tryagain:
  747. # ifdef LEXDEBUG
  748.             if(debug){
  749.                 fprintf(yyout,"char ");
  750.                 allprint(yych);
  751.                 putchar('\n');
  752.                 }
  753. # endif
  754.             yyr = yyt;
  755.             if ( (int)yyt > (int)yycrank){
  756.                 yyt = yyr + yych;
  757.                 if (yyt <= yytop && yyt->verify+yysvec == yystate){
  758.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  759.                         {unput(*--yylastch);break;}
  760.                     *lsp++ = yystate = yyt->advance+yysvec;
  761.                     goto contin;
  762.                     }
  763.                 }
  764. # ifdef YYOPTIM
  765.             else if((int)yyt < (int)yycrank) {        /* r < yycrank */
  766.                 yyt = yyr = yycrank+(yycrank-yyt);
  767. # ifdef LEXDEBUG
  768.                 if(debug)fprintf(yyout,"compressed state\n");
  769. # endif
  770.                 yyt = yyt + yych;
  771.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  772.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  773.                         {unput(*--yylastch);break;}
  774.                     *lsp++ = yystate = yyt->advance+yysvec;
  775.                     goto contin;
  776.                     }
  777.                 yyt = yyr + YYU(yymatch[yych]);
  778. # ifdef LEXDEBUG
  779.                 if(debug){
  780.                     fprintf(yyout,"try fall back character ");
  781.                     allprint(YYU(yymatch[yych]));
  782.                     putchar('\n');
  783.                     }
  784. # endif
  785.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  786.                     if(yyt->advance+yysvec == YYLERR)    /* error transition */
  787.                         {unput(*--yylastch);break;}
  788.                     *lsp++ = yystate = yyt->advance+yysvec;
  789.                     goto contin;
  790.                     }
  791.                 }
  792.             if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  793. # ifdef LEXDEBUG
  794.                 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  795. # endif
  796.                 goto tryagain;
  797.                 }
  798. # endif
  799.             else
  800.                 {unput(*--yylastch);break;}
  801.         contin:
  802. # ifdef LEXDEBUG
  803.             if(debug){
  804.                 fprintf(yyout,"state %d char ",yystate-yysvec-1);
  805.                 allprint(yych);
  806.                 putchar('\n');
  807.                 }
  808. # endif
  809.             ;
  810.             }
  811. # ifdef LEXDEBUG
  812.         if(debug){
  813.             fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  814.             allprint(yych);
  815.             putchar('\n');
  816.             }
  817. # endif
  818.         while (lsp-- > yylstate){
  819.             *yylastch-- = 0;
  820.             if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  821.                 yyolsp = lsp;
  822.                 if(yyextra[*yyfnd]){        /* must backup */
  823.                     while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  824.                         lsp--;
  825.                         unput(*yylastch--);
  826.                         }
  827.                     }
  828.                 yyprevious = YYU(*yylastch);
  829.                 yylsp = lsp;
  830.                 yyleng = yylastch-yytext+1;
  831.                 yytext[yyleng] = 0;
  832. # ifdef LEXDEBUG
  833.                 if(debug){
  834.                     fprintf(yyout,"\nmatch ");
  835.                     sprint(yytext);
  836.                     fprintf(yyout," action %d\n",*yyfnd);
  837.                     }
  838. # endif
  839.                 return(*yyfnd++);
  840.                 }
  841.             unput(*yylastch);
  842.             }
  843.         if (yytext[0] == 0  /* && feof(yyin) */)
  844.             {
  845.             yysptr=yysbuf;
  846.             return(0);
  847.             }
  848.         yyprevious = yytext[0] = input();
  849.         if (yyprevious>0)
  850.             output(yyprevious);
  851.         yylastch=yytext;
  852. # ifdef LEXDEBUG
  853.         if(debug)putchar('\n');
  854. # endif
  855.         }
  856.     }
  857. #if    NeXT
  858. int yyback(p, m)
  859.     int *p;
  860.     int m;
  861. #else
  862. yyback(p, m)
  863.     int *p;
  864. #endif    NeXT
  865. {
  866. if (p==0) return(0);
  867. while (*p)
  868.     {
  869.     if (*p++ == m)
  870.         return(1);
  871.     }
  872. return(0);
  873. }
  874.     /* the following are only used in the lex library */
  875. #if    NeXT
  876. int yyinput(){
  877. #else
  878. yyinput(){
  879. #endif    NeXT
  880.     return(input());
  881.     }
  882. #if    NeXT
  883. void yyoutput(c)
  884.     int c; 
  885. {
  886.     output(c);
  887. }
  888. #else
  889. yyoutput(c)
  890.   int c; {
  891.     output(c);
  892.     }
  893. #endif    NeXT
  894. #if    NeXT
  895. void yyunput(c)
  896.     int c; 
  897. {
  898.     unput(c);
  899. }
  900. #else
  901. yyunput(c)
  902.    int c; {
  903.     unput(c);
  904.     }
  905. #endif    NeXT
  906.